#include "IBuilder.h"
#include "Product.h"
#include <iostream>

IBuilder::IBuilder()
{
}


IBuilder::~IBuilder()
{
}

FatBuilder::FatBuilder()
{
	product = new Product();
}

FatBuilder::~FatBuilder()
{
}

void FatBuilder::BuildPartA(const std::string & buildPara)
{
	product->Add(buildPara + "\tfat head ");
}

void FatBuilder::BuildPartB(const std::string & buildPara)
{
	product->Add(buildPara + "\tfat body ");
}

void FatBuilder::BuildPartC(const std::string & buildPara)
{
	product->Add(buildPara + "\tfat hand ");
}

Product* FatBuilder::GetProduct()
{
	return product;
}

ThinBuilder::ThinBuilder()
{
	product = new Product();
}

ThinBuilder::~ThinBuilder()
{
}

void ThinBuilder::BuildPartA(const std::string & buildPara)
{
	product->Add(buildPara + "\tthin head ");
}

void ThinBuilder::BuildPartB(const std::string & buildPara)
{
	product->Add(buildPara + "\tthin body ");
}

void ThinBuilder::BuildPartC(const std::string & buildPara)
{
	product->Add(buildPara + "\tthin hand ");
}

Product * ThinBuilder::GetProduct()
{
	return product;
}
